/**
 * @file
 * @author  Tsin Smith <tsin.creator@gmail.com>
 *
 */

#ifndef __TSIN_UTIL_EVENTSOURCE_HPP__
#define __TSIN_UTIL_EVENTSOURCE_HPP__

#include <tsin/util/common.hpp>

namespace tsin {

        class EventListener;

        class UTIL_DLLEXPORT EventSource
        {
        public:
                void emit(int event);
                void registerListener(EventListener *listener, int event);

                virtual void *getEventInfo() = 0;

        protected:
                int eventBase;
        };

}

#endif /* __TSIN_UTIL_EVENTSOURCE_HPP__ */
